package com.rentong.cust.service;

import java.io.IOException;
import java.util.List;

import com.rentong.cust.domain.CustJiesuanList;
import com.rentong.cust.domain.CustJiesuanVo;
import com.rentong.cust.vo.CustJiesuanRequest;
import com.rentong.cust.vo.SubmitRequest;
import org.springframework.web.multipart.MultipartFile;

/**
 * 结算单Service接口
 *
 * @author ruoyi
 * @date 2025-01-02
 */
public interface ICustJiesuanListService {
    /**
     * 查询结算单
     *
     * @param jiesuanListId 结算单主键
     * @return 结算单
     */
    public CustJiesuanVo selectCustJiesuanListByJiesuanListId(Long jiesuanListId);


    public List<CustJiesuanVo> selectCustJiesuanListList(CustJiesuanRequest custJiesuanRequest);

    /**
     * 新增结算单
     *
     * @param custJiesuanList 结算单
     * @return 结果
     */
    public int insertCustJiesuanList(CustJiesuanList custJiesuanList);

    /**
     * 修改结算单
     *
     * @param custJiesuanList 结算单
     * @return 结果
     */
    public int updateCustJiesuanList(CustJiesuanList custJiesuanList);

    /**
     * 批量删除结算单
     *
     * @param jiesuanListIds 需要删除的结算单主键集合
     * @return 结果
     */
    public int deleteCustJiesuanListByJiesuanListIds(Long[] jiesuanListIds);

    /**
     * 删除结算单信息
     *
     * @param jiesuanListId 结算单主键
     * @return 结果
     */
    public int deleteCustJiesuanListByJiesuanListId(Long jiesuanListId);

    void handleFileUpload(MultipartFile file) throws IOException;

    void submit(SubmitRequest submitRequest);

    List<CustJiesuanVo> selectCustJiesuanListListByConfirm(CustJiesuanRequest custJiesuanRequest);

    void confirmSubmit(SubmitRequest submitRequest);

    void outConfirm(Long[] jiesuanListIds);
}
